package com.fr71.project.dm.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fr71.framework.aspectj.lang.annotation.Excel;
import com.fr71.framework.web.domain.BaseEntity;
import springfox.documentation.annotations.ApiIgnore;

/**
 * 用户对象 pd_user
 *
 * @author devzwy
 * @date 2023-06-26
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "用户实体")
@Data
public class PdUser extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    @ApiModelProperty(value = "用户id", hidden = true)
    private Long uid;

    /**
     * 类型
     */
    @Excel(name = "类型")
    @ApiModelProperty(value = "类型", hidden = false)
    private Integer uType;

    /**
     * 授权方式
     */
    @ApiModelProperty(value = "授权方式", hidden = false)
    @Excel(name = "授权方式")
    private Integer authType;

    /**
     * 绑定IP
     */
    @ApiModelProperty(value = "绑定IP", hidden = false)
    @Excel(name = "绑定IP")
    private String bindIp;

    /**
     * 授权时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "授权时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date authStartTime;

    /**
     * 有效期截止
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "有效期截止", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date authEndTime;

    /**
     * 安全码
     */
    @Excel(name = "安全码")
    private String sCode;

    /**
     * 绑定QQ
     */
    @Excel(name = "绑定QQ")
    private String bindQq;

    /**
     * 当月换绑次数
     */
    private Integer changeTimesMonth;

    /**
     * 当前使用的版本
     */
    private String version;

    /**
     * 查询安全码的密码
     */
    private String sCodePsw;

    private String openEtcModel;

    /**
     * 黑名单用户
     */
    private String black;

    /**
     * 黑名单描述
     */
    private String blackDec;

    /**
     * 架设耗时
     */
    private Long lastInstallDelayTime;

    /**
     * 累计使用时长 总在线时长 单位h
     */
    private Long totalUsedTime;

    /**
     * 最后一次链接的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastConnectTime;

    /**
     * 最后一次断开链接的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastDisConnectTime;

    /**
     * 总链接数量
     */
    private Long totalConnections;

    /**
     * 有效链接数量
     */
    private Long connections;

    /**
     * 总账号数量
     */
    private Long totalPlayers;

    /**
     * 内存信息
     */
    private String memInfo;

    /**
     * jvm
     */
    private String jvmInfo;

    /**
     * cpu
     */
    private String cpuInfo;

    private String onlines;

    /**
     * 答题分数
     */
    private String totalAswScore;

    /**
     * 答题耗时
     */
    private Long aswTime;
}
